查看原文
其他

如何通过监督式学习,实现准确的在线说话者分类

Google 谷歌开发者 2019-02-15

文 / Google AI 研究员 Chong Wang

说话者分类是指将包含多个声音的音频流分割为与每个人相关联的同类片段的过程,这是语音识别系统的重要组成部分。通过解决 “谁在何时说话” 的问题,说话者分类可应用于许多重要场景,例如理解医疗对话和视频字幕等。然而,通过监督式学习方法训练这些系统却颇具挑战。与标准的监督式分类任务不同,强大的分类模型需要能够将新的说话者与训练中不存在的不同语音片段关联起来。重要的是,这会限制在线与离线分类系统的效能。由于在线系统需要实时获取分类结果,因此通常会受到更大影响。


对流式音频输入内容在线进行说话者分类。底轴的不同颜色表示不同的说话者


在 “全监督式说话者分类 (Fully Supervised Speaker Diarization)” 一文中,我们描述了一种新模型,能够以更有效的方式利用监督式说话者标签。这里的 “全” 意味着说话者分类系统中的所有组成部分(包括说话者人数估计)均进行过监督式训练,以便从增加可用的标记数据量中受益。在 NIST SRE 2000 CALLHOME 基准测试中,我们的分类错误率 (DER) 低至 7.6%,相比之下,之前基于聚类的方法 DER 为 8.8%,而深度神经网络嵌入法则为 9.9%。此外,我们的方法基于在线解码实现了较低的错误率,因此特别适用于实时应用场景。我们还在论文中 开源了核心算法(https://github.com/google/uis-rnn),以加快此方向的更多研究。



聚类算法与交错状态 RNN

现代说话者分类系统通常基于聚类算法,例如 k-均值或谱聚类。由于这些聚类方法均为无监督算法,因此无法充分利用数据中可用的监督式说话者标签。此外,在具有流式音频输入的实时分类应用中,在线聚类算法通常效果欠佳。我们的模型与一般聚类算法的关键区别是,在我们的方法中,所有说话者的嵌入都是通过共享参数的递归神经网络 (RNN) 进行建模,而且我们利用在时域中交错的不同 RNN 状态区分不同的说话者。 


为理解这一工作原理,请思考以下示例,其中有四种可能的说话者,其颜色分别为蓝色黄色粉色绿色(这是一个任意数字,实际可能更多。我们的模型使用中餐馆流程来处理未知数量的说话者)。每位说话者都以自身的 RNN 实例开始(且所有说话者有一个共同的初始状态),并会在给定来自该说话者的新嵌入时持续更新 RNN 状态。在以下示例中,蓝色说话者不断更新其 RNN 状态,直至另一位说话者(黄色)进入。如果蓝色说话者稍后再次说话,则会继续更新其 RNN 状态。(这只是下图中语音片段 y7 的可能性之一。如果新进来一个绿色说话者,该说话者将以新的 RNN 实例开始。) 


我们模型的生成过程。颜色表示说话者语音片段的标签


将说话者表示为 RNN 状态使我们能够学习通过 RNN 参数在不同说话者和话语之间共享的高阶知识,这可保证更多标记数据的实用性。相比之下,一般的聚类算法几乎总是单独处理单个话语,因而很难从大量标记数据中受益。

这一切的结果是,给定带有时间标记的说话者标签(即我们知道谁在何时说话)后,我们能够使用标准的随机梯度下降算法训练模型。经过训练的模型可以对未听过的说话者的新话语进行分类。此外,使用在线解码也使其更适于延迟敏感型应用。


未来工作

尽管我们已通过此系统实现出色的分类性能,但目前仍在探索许多令人兴奋的方向。首先,我们正在改进模型,使其能够轻松整合上下文信息以进行离线解码。这将有可能进一步降低 DER,并且对延迟敏感型应用更有用。其次,我们想直接对声学特征进行建模,而非使用 d 向量。如此一来,我们便能以端到端的方式训练整个说话者分类系统。 

如需进一步了解本研究,请参阅我们的论文(https://arxiv.org/abs/1810.04719)。如需下载该系统的核心算法,请访问 Github 页面(https://github.com/google/uis-rnn)



致谢

本研究由 Google AI 与语音和智能助理团队通力合作完成。参与者包括 Aonan Zhang(实习生)、Quan Wang、Zhengyao Zhu 和 Chong Wang。



更多 AI 相关阅读:



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存